/* 进度条拖滑事件 */
export default {
	data() {
		return {
			/* 参数在video.js */
			//duration_init:0,//总时长(总进度)int整数型，未转换的，用于进度条拖滑事件
			
			/* 参数在switch.js */
			//ischangingSliderTime:false,// 视频进度面板开关(拖动进度条时显示)
			
			//seekTime:0,// 跳转到指定时间
			// changingSliderX @true>>进度条在拖动，@false>>进度条没有拖动
			changingSliderX:false,//如果进度条在拖动，不可以执行触摸改变视频进度
		}
	},
	methods: {
		/* 完成一次拖动后触发的事件 */
		changeSlider(e) {
			this.changingSliderX = false//进度条没有在拖动
			//[switch.js]
			this.ischangingSliderTime = false // 完成拖动后隐藏视频进度面板
			//[switch.js]
			this.isTouchFull = false // 关闭触摸面板
			
			var duration = this.timeUpdate[0].duration_init // 总时长(总进度)int整数型
			var second = e.detail.value / 100 * duration // 计算当前进度(时间)
			if (duration){
				//完成拖动后，计算对应时间并跳转到指定位置
				this.seek(second) // 跳转到指定时间
				//[video.js]
				this.timeUpdate[0].sliderValue = e.detail.value // 设置进度条的值
				//[video.js]
				this.timeUpdate[0].changingSliderValue = e.detail.value // [视频进度面板专属]设置进度条的值
				//[video.js]
				this.timeUpdate[0].updateState = true //完成拖动后允许更新滚动条
			}
			
			// 定义入口参数
			var event = {
				duration,// 总时长(总进度)int整数型
				second// 计算当前进度(时间)
			}
			// 执行更新进度
			this.UpdateTime(event)

			/* 3.5.1 版本新增代码与修复bug 2022-0327
			 * bug反馈为：视频暂停播放时，手势拖动进度条，加载中提示不会消失，加载好了也不消失，点击播放按钮才会消失
			 */
			// 判断当前是否处于暂停播放状态，如果是，则在手势完成一次拖动完毕后自动继续播放。
			if (this.isPlay == false){
				// 继续播放
				this.play()
			}
			
			// 需要重制手指，不然的话，下次触摸时无法执行触摸调节事件的，因为状态为'noTouch'
			//this.TouchMoveType = null
		},	
		/* 拖动过程中触发的事件 */
		changingSlider(e) {
			// 用来拦截进度条拖滑和触摸改变进度时两个事件同时触发
			this.changingSliderX = true//进度条在拖动，不可以执行触摸改变视频进度
			// 拖拽过程中，不允许更新进度条
			this.timeUpdate[0].updateState = false
			// [switch.js] // 拖拽过程中，打开触摸面板
			this.isTouchFull = true 
			// [switch.js] 拖拽过程中，显示视频进度面板
			this.ischangingSliderTime = true
			// [video.js] 拖拽过程中，[视频进度面板专属]设置进度条的值
			this.timeUpdate[0].changingSliderValue = e.detail.value //[视频进度面板专属]设置进度条的值
			
			var duration = this.timeUpdate[0].duration_init // 总时长(总进度)int整数型
			var second = e.detail.value / 100 * duration // 计算当前进度(时间)
			// 定义入口参数
			var event = {
				duration,// 总时长(总进度)int整数型
				second// 计算当前进度(时间)
			}
			// 执行更新进度
			this.UpdateTime(event)
			
		},
		/* 
			执行更新时间
			@currtime 当前时间
			@druationTime 总时间
		*/
	   UpdateTime(event){
		   let duration = event.duration
		   let second = event.second
		   // 之前的,有点bug
		   // 更新 总时间 字符串 计算后
		   //this.druationTime = this.formatSeconds(duration)
		   // 更新 当前播放时间 字符串 计算后
		   //this.currtime = this.formatSeconds(second)
		   
		   
		   // 修复BUG，具体看[video.js>data里的Touch_druationTime参数说明]
		   // 更新 总时间 字符串 计算后
		   this.Touch_druationTime = this.formatSeconds(duration)
		   // 更新 当前播放时间 字符串 计算后
		   this.Touch_currtime = this.formatSeconds(second)
	   }
	}
}
